##### SCRIPT QUE GERA A TABELA 4 #####

# 1. CARREGA PACOTES ------------------------------------------------------

library(censobr)
library(tidyverse)
library(janitor)
library(survey)
library(srvyr)
library(xlsx)

# 2. CARREGA DADOS --------------------------------------------------------

# Censo Demografico filtrado com apenas os individuos com ensino superior completo (filtro abaixo)

# c10_sup <- censo10 %>% filter(V6400 == 4)

c10_sup <- readRDS("c10_sup.rds")

#' Variaveis utilizadas:
#' V6036 = IDADE CALCULADA EM ANOS
#' V6352 = CURSO SUPERIOR DE GRADUAÇÃO 
#' V6930 = POSIÇÃO NA OCUPAÇÃO E CATEGORIA DO EMPREGO NO TRABALHO PRINCIPAL 
#' V6920 = SITUAÇÃO DE OCUPAÇÃO NA SEMANA DE REFERÊNCIA
#' V6513 = RENDIMENTO NO TRABALHO PRINCIPAL
#' V0653 = NO TRABALHO PRINCIPAL, QUANTAS HORAS TRABALHAVA HABITUALMENTE POR SEMANA

# 3. MODIFICA DADOS -------------------------------------------------------

# 3.1 Filtra quem tem entre 18 e 35 anos ----

c10_sup <- c10_sup %>% filter(V6036 > 17 & V6036 < 34)

# 3.2 Cria variavel de area de formacao ----

c10_sup <- c10_sup %>%
      mutate(area_formacao = case_when(str_detect(V6352, "^32") |
                                             str_detect(V6352, "^34") | 
                                             V6352 %in% c("313", "314") ~ "Ciências Sociais Aplicadas",
                                       str_detect(V6352, "^4") | 
                                             str_detect(V6352, "^6") ~ "CTEM",
                                       V6352 %in% c("380") ~ "Direito",
                                       str_detect(V6352, "^1") ~ "Educação",
                                       str_detect(V6352, "^5") ~ "Engenharia",
                                       str_detect(V6352, "^2") | 
                                             V6352 %in% c("310", "311", "312") ~ "Humanidades e Artes",
                                       V6352 %in% c("721") ~ "Medicina",
                                       str_detect(V6352, "^7") & 
                                             !V6352 %in% c("721") ~ "Saúde e Bem-Estar",
                                       str_detect(V6352, "^8") & 
                                             !V6352 == 85 ~ "Serviços"))

# 3.3 Recodifica posicao na ocupacao ----

c10_sup <- c10_sup %>%
      mutate(posicao_ocup = case_when(V6930 == 1 ~ "Empregado com carteira assinada",
                                      V6930 == 2 ~ "Militar e funcionário público",
                                      V6930 == 3 ~ "Empregado sem carteira assinada",
                                      V6930 == 4 ~ "Conta própria",
                                      V6930 == 5 ~ "Empregador",
                                      V6930 == 6 ~ "Não remunerado",
                                      V6930 == 7 ~ "Produção próprio consumo"
                                      ))

# 3.4 Recodifica situacao de ocupacao ----

c10_sup <- c10_sup %>%
      mutate(situacao_ocup = case_when(V6920 == 1 ~ "Ocupado",
                                       V6920 == 2 ~ "Não ocupado"))

# 3.5 Define desenho amostral ----

c10_da <- c10_sup %>% as_survey_design(1, weight = V0010)

# 4. GERA TABELA ----------------------------------------------------------

tab_distr_area_pos_ocup <- c10_da %>% 
   filter(!is.na(area_formacao)) %>% 
   filter(V6513 > 0) %>% 
   group_by(area_formacao, posicao_ocup) %>% 
   summarize(prop_ocup = survey_mean()) %>% 
   ungroup() %>% 
   select(area_formacao, posicao_ocup, prop_ocup) %>% 
   mutate(prop_ocup = round(100*prop_ocup, 1)) %>% 
   spread(posicao_ocup, prop_ocup)

# 5. EXPORTA TABELA -------------------------------------------------------

tab_distr_area_pos_ocup %>% 
   data.frame %>% 
   xlsx::write.xlsx("./output/tab_distr_ocup_area.xlsx", 
                    append = T, 
                    row.names = F, 
                    sheetName = "pos_ocup_bruto")
